<?php
/**
 * @uses            Classe_Base
 **/
class Classe_Utilisateur extends Classe_Base{
    
    // Classe_Base :: Static 
    protected static    $_tbl_name      = 'utilisateur';
    protected static    $_prefix        = 'utilisateur_';
    protected static    $_pk_name       = 'utilisateur_id';
    
    // Classe_Utilisateur
    private             $_isLog         = false;
    
    // Fonctions
    // Constructeur
    public function     __construct($db, $id = null, $password_crypte = null) {

        // On commence par appelÃ© le constructeur du parent.          
        parent::__construct($db, $id);

        // Si l'id + pass renseigné il est connecté, on vérifie donc les infos
        if($id != null && $password_crypte != null)
            $this->test_session($id, $password_crypte);
        
    }
    
    //Regarde si l'utilisateur existe
    public function connexion($login, $password)
    {
        //Vérification de l'id et password
        $rq = "SELECT COUNT(*) FROM administrateur WHERE login_administrateur = '".securite::bdd($login)."' AND password_administrateur = '".md5(HASH.securite::bdd($password))."';";
        $result = $GLOBALS['bdd']->query($rq);
        //Si il n'y a pas d'utilisateur pour ces identifiants
        if(mysql_result($result, 0) == 0)
        {
            return false;
        }
        else
        {
            //On va chercher l'id
            $rq2 = "SELECT id_administrateur FROM administrateur WHERE login_administrateur = '".securite::bdd($login)."' AND password_administrateur = '".md5(HASH.securite::bdd($password))."';";
            $result = $GLOBALS['bdd']->query($rq2);
            $id = mysql_result($result, 0);
            $this->creer_depuis_id($id);
            $_SESSION['id_administrateur'] = $this->id;
            $_SESSION['date_connexion_administrateur'] = $this->date_connexion;
            $date = time();
            //On sauvegarde dans la bdd la nouvelle date de connexion
            $rq = "UPDATE administrateur SET date_connexion_administrateur = '".$date."' WHERE id_administrateur = '".$this->id."';";
            $GLOBALS['bdd']->query($rq);
            return true;
        }
    }
    //Déconnexion d'un administrateur
    public function deconnexion()
    {
        unset($_SESSION);
        session_destroy();
    }    
    
    // Test si les variables de sessions sont bonnes (si le passe et l'id correspondent biens
    protected function test_session($id, $password_crypte){
        //Vérification de l'id et password
        $rq = " SELECT COUNT(*) 
                FROM ".self::$_tbl_name." u
                WHERE ".self::$_pk_name." = '".securite::bdd($id)."' 
                    AND password_administrateur = '".$password."';";
        $this->_db->fetchOne($rq);
        //$result = _db->($rq);
        
        //Si il n'y a pas d'utilisateur pour ces identifiants
        if(mysql_result($result, 0) == 0)
        {
            return false;
        }
        else
        {
        }
    }
    
    // Retourne la variable privée IsLog
    public function getIsLog(){
        return $this->_isLog;
    }
}
?>